# -*- coding: utf8 -*-
# import sys
# path = '../../../'
# sys.path.append(path)
from time import sleep
from common.verify_code import SlideVerificationCode


def test():
    from selenium import webdriver

    # 第一步：打开浏览器
    driver = webdriver.Chrome()
    driver.implicitly_wait(15)

    # 第二步：访问qq空间登录页面
    driver.get(url="https://qzone.qq.com/")

    # 第三步：点击账号密码登录
    # 3.1 切换iframe
    driver.switch_to.frame('login_frame')
    driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()

    # 第四步：输入账号密码
    # 4.1定位账号输入框，输入账号
    driver.find_element_by_xpath('//*[@id="u"]').send_keys('362715381')
    # 4.2 定位密码输入框，输入密码
    driver.find_element_by_xpath('//*[@id="p"]').send_keys('1234r2we')

    # 第五步：点击登录
    driver.find_element_by_xpath('//*[@id="login_button"]').click()
    while True:
        # 第六步：滑动验证码
        # 6.1创建一个滑动验证的对象
        sli = SlideVerificationCode()
        # 6.2 计算滑动的距离

        # 切换到验证码所在的iframe(如果需要)
        # driver.switch_to.frame(driver.find_element_by_xpath('//*[@id="tcaptcha_iframe"]'))

        # 定位滑块图片
        slider_ele = driver.find_element_by_xpath('//*[@id="slideBlock"]')
        # 定位验证码背景图
        background_ele = driver.find_element_by_xpath('//*[@id="slideBg"]')

        distance = sli.get_element_slide_distance(slider_ele, background_ele)
        # print("滑动的距离为：", distance)
        # 根据页面图片缩放比调整滑动距离
        distance = distance * 280 / 680 - 31 #680是原始宽度，280是在页面上的宽度，distance是按原始的，31为滑块距离左边的距离（电脑缩放比100%为标准）
        # 6.3模拟滑动鼠标
        btn = driver.find_element_by_xpath('//*[@id="tcaptcha_drag_thumb"]')
        sli.slide_verification(driver, btn, distance)
        # // *[ @ id = "e_reload"]
        try:
            sleep(5)
            driver.find_element_by_xpath('*[ @ id = "e_reload"]').click()
            sleep(5)
        except:
            sleep(5)
            break
        # driver.close()
if __name__ == '__main__':
    test()